//#define _CRT_SECURE_NO_WARNINGS 1
//
//#include<stdio.h>
//typedef struct student
//{
//	char number[6];
//	char name[10];
//	int score1;
//	int score2;
//	int score3;
//	int all;
//}stu;
//
//
//int main()
//{
//	int n = 0;
//	scanf("%d", &n);
//	int i = 0;
//	stu students[10];
//	for (i = 0; i < n; i++)
//	{
//		scanf("%s %s %d %d %d", students[i].number, students[i].name, &students[i].score1, &students[i].score2, &students[i].score3);
//		students[i].all = students[i].score1 + students[i].score2 + students[i].score3;
//	}
//	stu max = students[0];
//	for (i = 1; i < n; i++)
//	{
//		if (students[i].all > max.all)
//			max = students[i];
//	}
//	printf("%s %s %d", max.name, max.number, max.all);
//	return 0;
//}

//#define _CRT_SECURE_NO_WARNINGS 1
//
//#include<stdio.h>
//
//typedef struct compain
//{
//	double z;
//	double i;
//}fushu;
//
//fushu sum(fushu a, fushu b)
//{
//	printf("(%.1lf+%.1lfi) + (%.1lf+%.1lfi) = ",a.z,a.i,b.z,b.i);
//	if (a.z + b.z >=0.1)
//		printf("%.1lf", a.z + b.z);
//	if (a.i + b.i >= 0.1)
//		printf("%+.1lfi", a.i + b.i);
//	if (a.z + b.z <0.1 && a.i + b.i < 0.1)
//		printf("0.0");
//	printf("\n");
//}
//
//fushu sub(fushu a, fushu b)
//{
//	printf("(%.1lf+%.1lfi) - (%.1lf+%.1lfi) = ", a.z, a.i, b.z, b.i);
//	if (a.z - b.z >=0.1)
//		printf("%.1lf", a.z - b.z);
//	if (a.i - b.i >= 0.01)
//		printf("%+.1lfi", a.i - b.i);
//	if (a.z - b.z < 0.1 && a.i - b.i < 0.1)
//		printf("0.0");
//	printf("\n");
//}
//
//fushu ret(fushu a, fushu b)
//{
//	printf("(%.1lf+%.1lfi) * (%.1lf+%.1lfi) = ", a.z, a.i, b.z, b.i);
//	if (a.z * b.z-a.i*b.i >= 0.1)
//		printf("%.1lf", a.z * b.z + a.i * b.i);
//	if (a.i*b.z + b.i*a.z >= 0.1)
//		printf("%+.1lfi", a.i * b.z + b.i * a.z);
//	if (a.z + b.z < 0.1 && a.i + b.i < 0.1)
//		printf("0.0");
//	printf("\n");
//}
//
//fushu c(fushu a, fushu b)
//{
//	printf("(%.1lf+%.1lfi) / (%.1lf+%.1lfi) = ", a.z, a.i, b.z, b.i);
//	if (a.z/b.z - a.i/b.i >= 0.1)
//		printf("%.1lf", a.z / b.z - a.i / b.i);
//	if (a.i/b.z + a.z/b.i >= 0.1)
//		printf("%+.1lfi", a.i / b.z + a.z / b.i);
//	if (a.z + b.z < 0.1 && a.i + b.i < 0.1)
//		printf("0.0");
//	printf("\n");
//}
//int main()
//{
//	fushu a, b;
//	scanf("%lf %lf %lf %lf", &a.z, &a.i, &b.z, &b.i);
//	sum(a, b);
//	sub(a, b);
//	ret(a, b);
//	c(a, b);
//	return 0;
//}


#include <stdio.h>

typedef struct fushu {
	float sb;
	float xb;
}fushu;

fushu sum(fushu x, fushu y)
{
	fushu r;
	r.sb = x.sb + y.sb;
	r.xb = x.xb + y.xb;
	return end;
}

fushu sub(fushu x, fushu y)
{
	fushu r;
	r.sb = x.sb - y.sb;
	r.xb = x.xb - y.xb;
	return r;
}

fushu ret(fushu x, fushu y)
{
	fushu r;
	r.sb = x.sb * y.sb - x.xb * y.xb;
	r.xb = x.sb * y.xb + x.xb * y.sb;
	return r;
}

fushu chu(fushu x, fushu y)
{
	fushu r;
	r.sb = (x.sb * y.sb + x.xb * y.xb) / (y.sb * y.sb + y.xb * y.xb);
	r.xb = (x.xb * y.sb - x.sb * y.xb) / (y.sb * y.sb + y.xb * y.xb);
	return r;
}

void shizi(float x, float y) {
	if (y < 0) {
		printf("(%.1f%.1fi)", x, y);
	}
	else
		printf("(%.1f+%.1fi)", x, y);
}

void result(float x, float y) {
	if (y <= 0.05 && y >= -0.05)
		printf("%.1f\n", x);
	else if (x <= 0.05 && x >= -0.05)
		printf("%.1fi\n", y);
	else if (y < 0)
		printf("%.1f%.1fi\n", x, y);
	else
		printf("%.1f+%.1fi\n", x, y);
}

int main(void)
{
	struct fushu c1, c2, r1, r2, r3, r4;

	scanf("%f %f %f %f", &c1.sb, &c1.xb, &c2.sb, &c2.xb);

	r1 = sum(c1, c2);
	shizi(c1.sb, c1.xb);
	printf(" + ");
	shizi(c2.sb, c2.xb);
	printf(" = ");
	result(r1.sb, r1.xb);

	r2 = sub(c1, c2);
	shizi(c1.sb, c1.xb);
	printf(" - ");
	shizi(c2.sb, c2.xb);
	printf(" = ");
	result(r2.sb, r2.xb);

	r3 = ret(c1, c2);
	shizi(c1.sb, c1.xb);
	printf(" * ");
	shizi(c2.sb, c2.xb);
	printf(" = ");
	result(r3.sb, r3.xb);

	r4 = chu(c1, c2);
	shizi(c1.sb, c1.xb);
	printf(" / ");
	shizi(c2.sb, c2.xb);
	printf(" = ");
	result(r4.sb, r4.xb);

	return 0;
}

